1. Field of the Invention
The present invention generally relates to geometric processing in graphics systems and more specifically to a Hermite Gregory patch for watertight tessellation.
2. Description of the Related Art
Modern three-dimensional (3D) graphics systems are typically configured to generate one or more graphics images from one or more graphics scenes, with each graphics scene comprising one or more scene objects. The one or more graphics images are typically displayed or stored for display later. Each scene object is represented by a corresponding geometric model. Each geometric model may comprise a collection of abstract geometric objects such as triangles, patches, or meshes.
A subdivision surface is a type of geometric object described concisely by relatively few control points that define a coarse control mesh and a set of subdivision rules that specify how the control mesh may be refined using subdivision into a more highly detailed control mesh. The subdivision rules may be analyzed to permit the computation of a highly tessellated representation of a desired scene object. Alternatively, the control mesh may be recursively processed according to the subdivision rules to generate a limit surface that closely approximates or converges on a scene object or a portion of the scene object. The limit surface is typically approximated as a set of abutting patches, such as Bezier patches. In many applications, the mesh of patches must be constructed to form a watertight tessellation, meaning a mesh of triangles tessellated from the mesh of patches must not have cracks or holes, and should not include any overlapping geometry. Additionally, the mesh of patches must be constructed to form a watertight, tangent-smooth mesh of patches. In a conventional graphics processing unit, each patch in the mesh of patches is tessellated into two or more triangles, representing a portion of the mesh of triangles. The mesh of triangles should be watertight because the mesh of triangles is ultimately used to generate a scene object within a given graphics image. One necessary condition of a watertight mesh of triangles is that each patch within the mesh of patches is parametrically continuous in position (C0) with respect to each boundary of adjacent patch.
A displaced subdivision surface is a form of subdivision surface that can represent surface detail on an otherwise relatively smooth limit surface. A displacement map may be used to store scalar displacement values for generating geometric offsets from the limit surface to represent the surface detail on the limit surface. Gregory patches are generated to closely approximate a conventional Catmull-Clark subdivision limit surface. The resulting subdivision surface is parametrically continuous with respect to partial derivatives for the surface (C1), and therefore C0. However, auxiliary tangent surfaces are still needed in existing art in order to generate a watertight tessellation when the resulting subdivision surface is a displaced subdivision surface. The auxiliary tangent surfaces conventionally require substantial additional data storage, which is quite limited in conventional graphics processing units. As a result, conventional techniques for watertight tessellation of displaced subdivision surfaces are relatively inefficient with respect to memory utilization, limiting usage of such techniques within graphics processing units.
Accordingly, what is needed in the art is a system and method for efficiently representing displaced subdivision surfaces for watertight tessellation.